# !/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
===========================
@Time : 2022/7/23 0023 16:45
@Author : 测试开发工程师
@File : 6. sql 注入漏洞.py
@Software: PyCharm
============================
"""

"""

sql注入漏洞原理：
    sql注入，也称SQL注入或SQL注码，是发生于应用程序与数据库层的安全漏洞。简而言之，是在输入的字符串中注入 SQL 指令，在设计不良
    的程序当中忽略了字符检查，那么这些注入进去的恶意指令就会被数据库服务误认是正常的SQL指令而运行，因此遭到破坏或是入侵。

sql注入漏洞案例：
    
    strSQL = "select * from users where (name='''+ username ''') and (pw = '''+ password +''');"
    当为 True 时：永远为真
        username = "1' or '1'== '1";
        password = "1' or '1'== '1";
    strSQL = "select * from users where (name='1' or '1'== '1') and (pw = '1' or '1'== '1');"

举例： 检索出其他表中的关键信息
    查询 id 为1时   1 ' union select first_name,last_name from users; -- -

危害与预防：
    危害： 漏洞可以让黑客无限制的使用 SQL， 造成数据泄露甚至远程命令执行
    预防： 使用参数化查询避免数据被混在指令中

"""
